﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using QLTuyenXe.BLL;
using QLTuyenXe.DAO;
using System.Text.RegularExpressions;
using System.Collections;
using System.Data.SqlClient;
using QLTuyenXe.library;

namespace QLTuyenXe.GUI
{
    public partial class frmHopDong : DevComponents.DotNetBar.Office2007RibbonForm
    { 
        BHopDong Hd = new BHopDong();
        XuLyDL xl = new XuLyDL();
        ThongBao thongBao = new ThongBao();
        public frmHopDong()
        {
            InitializeComponent();
        }
      
//==============================================================================================================        
        //Hàm thêm (Mr.Tuyên K_54HTTT)
        private void btnThem_Click(object sender, EventArgs e)
        {
            string date3 = DateTime.Now.ToShortDateString().ToString();
            int result = DateTime.Compare(dtThoiGianThue.Value, DateTime.Parse(date3));
            int results = DateTime.Compare(dtThoiGianThue.Value, dtThoiGianTra.Value);
            if((txtDaiDienA.Text == "")|| cboKhachHang.Text == "" ||
                (txtChucVuA.Text =="") ||
                ( txtDiaChiA.Text =="")||
                (txtDienThoaiA.Text=="")||
                (txtSoLuong.Text=="")||
                ( dtThoiGianThue.Value == null)|| (dtThoiGianTra.Value == null) ||
                (txtGiaBangChu.Text == "")|| (txtTienDatCoc.Text == ""))
            {
                MessageBoxEx.Show("<font color='red'>Bạn chưa nhập đủ các thông tin cần thiết. Bạn hãy kiểm tra lại</font>", "Thông Báo");   
            }
            else
            {
                if ((result >= 0) && (results < 0))
                {
                    string soghe = cbo_LoaiXe.SelectedItem.ToString().Split(':')[1].ToString();
                    string tenxe = cbo_LoaiXe.SelectedItem.ToString().Split(':')[0].ToString();
                   int dk = Hd.select_DieuKien(tenxe, soghe);
                   int dk2 = Hd.select_LX(tenxe, soghe);
                   //int dk3 = Hd.select_LX1(tenxe, soghe);
                   int dk5 = Hd.select_LX1(tenxe, soghe);
                   DataTable tgThue = Hd.select_TGThueXe(tenxe, soghe);
                   string tgthue = tgThue.Rows[0][0].ToString();
                   string tgtra = tgThue.Rows[0][1].ToString();
                   //int dk4 = Hd.select_LX2(tenxe, soghe, tgtra);
                   int dk4 = Hd.select_LX2(tenxe,soghe,tgtra);
                   DateTime t = DateTime.ParseExact(tgtra, "dd/MM/yyyy", null);
                   int result3 = DateTime.Compare(dtThoiGianThue.Value, t);
                   int dk6 = 0;
                   if (tgThue.Rows.Count = 1)
                   {
                       if (tgthue != "")
                       {
                           if (result3 >= 0)
                           {
                               dk6 = dk - dk2 + dk4;
                           }
                           else
                           {
                               dk6 = dk - dk2;
                           }
                           if (int.Parse(txtSoLuong.Text) <= dk6)
                           {
                               Them();
                           }
                           else
                           {
                               MessageBoxEx.Show("Xin lỗi bạn không đủ số xe như bạn yêu cầu, Bạn có thể chọn loại khác \n Hiện tại còn  " + dk6 + " xe mà bạn vừa chọn có thể thuê được");
                           }
                       }
                   }
                   else
                   {
                       if (tgThue.Rows.Count >1)
                       {
                           if (tgthue != "")
                           {
                               if (result3 >= 0)
                               {
                                   dk6 = dk - dk5 + dk4;
                               }
                               else
                               {
                                   dk6 = dk - dk5;
                               }
                               if (int.Parse(txtSoLuong.Text) <= dk6)
                               {
                                   Them();
                                   btnLamLai_Click();
                               }
                               else
                               {
                                   MessageBoxEx.Show("Xin lỗi bạn không đủ số xe như bạn yêu cầu, Bạn có thể chọn loại khác \n Hiện tại còn  " + dk6 + " xe mà bạn vừa chọn có thể thuê được");
                               }
                           }
                       }
                       else
                       {
                            Them();
                            btnLamLai_Click();
                       }
                   }
                }
                else
                {
                    MessageBoxEx.Show("Xin lỗi ! Bạn hãy kiểm tra lại thời gian trong hợp đồng.\n Hệ thống không thể tạo được hợp đồng khi gặp sự cố về thời gian.");
                }
            }
        }
        //end hàm thêm (Mr.Tuyên K_54HTT)
//===========================================================================================================================================================================

        //Hamf them
        public void Them()
        {
            int kq = 0;
            XuLyDL xuLy = new XuLyDL();
            HOPDONG h = new HOPDONG();
            h.MaHD = Hd.getOrder();
            string date3 = DateTime.Now.ToShortDateString().ToString();
            h.MaCT = cbCongty.SelectedValue.ToString();
            h.DaidienA = xl.ChuanHoa(txtDaiDienA.Text);
            h.ChucvuA = xl.ChuanHoa(txtChucVuA.Text);
            h.DiachiA = xl.ChuanHoa(txtDiaChiA.Text);
            h.DienthoaiA = txtDienThoaiA.Text;
            h.Soluong = txtSoLuong.Text;
            h.TenXe = cbo_LoaiXe.SelectedItem.ToString().Split(':')[0].ToString();
            h.Loai = cbo_LoaiXe.SelectedItem.ToString().Split(':')[1].ToString();
            h.Thoigianthue = dtThoiGianThue.Value.ToShortDateString();
            h.Thoigiantra = dtThoiGianTra.Value.ToShortDateString();
            h.Giathue = cbGiaThue.SelectedValue.ToString();
            h.Giabangchu = txtGiaBangChu.Text;
            h.Sotiendatcoc = txtTienDatCoc.Text;
            h.Ngaylamhopdong = date3;
            h.MaKH = cboKhachHang.SelectedItem.ToString().Split(':')[0].ToString();
            if (xuLy.IsNumber(txtDienThoaiA.Text) == true && xuLy.IsNumber(txtSoLuong.Text) == true && xuLy.IsNumber(txtTienDatCoc.Text) == true)
            {
                kq = Hd.Insert(h);
                if (kq > 0)
                {
                    MessageBoxEx.Show("Chúc mừng công ty bạn đã ký được hợp đồng mới.");
                    //clear();
                }
                else
                {
                    MessageBoxEx.Show("Xin lỗi bạn hệ thống gặp sự cố, mong bạn kiểm tra lại.");
                }
            }
            else
            {
                MessageBoxEx.Show("Bạn đã nhập sai quy định không được paste ký tự vào ô điền số");
            }
        }
        //Ham xoa cac textbox
        private void btnLamLai_Click(object sender, EventArgs e)
        {
            load_CongTy();
            cboKhachHang.Items.Clear();
            load_Combobox_KH();
            if (cboKhachHang.Text == "")
            {
                cboDaiDienKH.DataSource=null;
                cboChucVuKH.DataSource = null;
                cboDiaChiKH.DataSource = null;
                cboDTKH.DataSource = null;
            }
            txtSoLuong.Clear();
            cbo_LoaiXe.Items.Clear();
            load_Combobox_Loai();
            if (cbo_LoaiXe.Text == "")
            {
                cbGiaThue.DataSource = null;
                txtGiaBangChu.Clear();
            }
            txtTienDatCoc.Clear();
            String t = DateTime.Now.ToString("dd-MM-yyyy");
            lbTime.Text = t.ToString();
            dtThoiGianThue.Text = DateTime.Now.ToString("dd/MM/yyyy");
            dtThoiGianTra.Text = System.DateTime.Now.AddDays(1).ToString();
      }

//-------------------------------------------------------------------------------------
        //Ham load form (Mr.Tuyên)
        private void frmHopDong_Load(object sender, EventArgs e)
        {
              String t = DateTime.Now.ToString("dd-MM-yyyy");
              lbTime.Text = t.ToString();
              load_CongTy();
              load_Combobox_Loai();
              load_Combobox_KH();
              dtThoiGianThue.Text = DateTime.Now.ToString("dd/MM/yyyy");
              dtThoiGianTra.Text = DateTime.Now.AddDays(1).ToString();
        }
        //End(Mr.Tuyên)
//--------------------------------------------------------------
        // load len combobax khach hang
        //Hàm load lên combobox(MR.Tuyên K_54HTTT)
        public void load_Combobox_KH()
        {
            DataTable dt = Hd.select_Combobox_KH();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                cboKhachHang.Items.Add(dt.Rows[i][0].ToString() + " :" + dt.Rows[i][1].ToString());
            }
            //Chức năng gợi nhớ
            //cboKhachHang.AutoCompleteMode = AutoCompleteMode.Suggest;
            //cboKhachHang.AutoCompleteSource = AutoCompleteSource.ListItems;
        }



        private void labelX14_Click(object sender, EventArgs e)
        {

        }

        private void labelX36_Click(object sender, EventArgs e)
        {

        }

        //Chặn nhập ký tự
        private void txtDienThoaiA_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
                MessageBoxEx.Show("Xin lỗi bạn số điện thoại là dạng số");
            }
        }
        //Chặn nhập ký tự
        private void txtDienThoaiB_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
                MessageBoxEx.Show("Xin lỗi bạn số điện thoại là dạng số");
            }
        }
        //Chặn nhập ký tự
        private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
                MessageBoxEx.Show("Xin lỗi bạn số lượng chỉ được nhập số");
            }
        }
        //Chặn nhập ký tự
        private void txtTienDatCoc_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
                MessageBoxEx.Show("Xin lỗi bạn tiền đặt trước phải là số");
            }
        }
 
//=========================================================================
        //Load ten cong ty (Mr.Tuyên)
        public void load_CongTy()
        {
            BCONGTY congTy = new BCONGTY();
            DataTable dt = congTy.Select();
            cbCongty.DataSource = dt;
            cbCongty.DisplayMember = "TenCT";
            cbCongty.ValueMember = "MaCT";
            txtDaiDienA.Text = dt.Rows[0][5].ToString();
            txtChucVuA.Text = dt.Rows[0][6].ToString();
            txtDiaChiA.Text = dt.Rows[0][2].ToString();
            txtDienThoaiA.Text = dt.Rows[0][3].ToString();
        }
        //end (Mr.Tuyên)
//==========================================================================

//=================================================================================
        //Hàm load lên combobox(MR.Tuyên K_54HTTT)
        public void load_Combobox_Loai()
        {
            DataTable dt = Hd.select_Combobox();
            for(int i =0; i < dt.Rows.Count; i++)
            {
                cbo_LoaiXe.Items.Add(dt.Rows[i][2].ToString() + ":" + dt.Rows[i][0].ToString());
            }
            //Chức năng gợi nhớ
            //cbo_LoaiXe.AutoCompleteMode = AutoCompleteMode.Suggest;
            //cbo_LoaiXe.AutoCompleteSource = AutoCompleteSource.ListItems;
        }
        //End hàm load combobox (Mr.Tuyên K_54HTTT)
//=================================================================================


        private void txtCongTyA_TextChanged(object sender, EventArgs e)
        {
           // btnThem.Enabled = true;
        }
        private void panelEx2_Click(object sender, EventArgs e)
        {

        }
        private void labelX1_Click_1(object sender, EventArgs e)
        {

        }
        private void groupPanel2_Click(object sender, EventArgs e)
        {

        }
        private void labelX15_Click(object sender, EventArgs e)
        {

        }
        private void txtChucVuA_TextChanged(object sender, EventArgs e)
        {

        }
        private void labelX40_Click(object sender, EventArgs e)
        {

        }
        private void labelX1_Click(object sender, EventArgs e)
        {

        }
        private void labelX2_Click(object sender, EventArgs e)
        {

        }
        private void groupPanel1_Click(object sender, EventArgs e)
        {

        }
        private void labelX9_Click(object sender, EventArgs e)
        {

        }
//==============================================================================================
        //Hàm load lên combox giá và giá tiền bằng chữ khi combobox loai xe thay đổi
        //(Mr.Tuyên)
        private void cbo_LoaiXe_TextChanged(object sender, EventArgs e)
        {
            string soghe = cbo_LoaiXe.SelectedItem.ToString().Split(':')[1].ToString();
            string tenxe = cbo_LoaiXe.SelectedItem.ToString().Split(':')[0].ToString();
            DataTable dt = Hd.select_Combobox_Gia(tenxe, soghe);
            cbGiaThue.DataSource = dt;
            cbGiaThue.DisplayMember = "GiaThue";
            cbGiaThue.ValueMember = "GiaThue";
            //decimal bc = decimal.Parse(cbGiaThue.SelectedValue.ToString());
            if (cbGiaThue.Text.ToString() != "")
            {
                decimal bc = decimal.Parse(cbGiaThue.SelectedValue.ToString());
                XuLyDL xl = new XuLyDL();
                txtGiaBangChu.Text = xl.DocTien(bc);
            }
        }
        //End (Mr.tuyên)
//===================================================================================================
        private void cboKhachHang_TextChanged(object sender, EventArgs e)
        { 
            string maKH = cboKhachHang.SelectedItem.ToString().Split(':')[0].ToString();
            string tenKH = cboKhachHang.SelectedItem.ToString().Split(':')[1].ToString();
            DataTable dt = Hd.selectKH(maKH, tenKH);
            cboDaiDienKH.DataSource = dt;
            cboDaiDienKH.DisplayMember = "daidienB";
            cboDaiDienKH.ValueMember = "daidienB";
            cboChucVuKH.DataSource = dt;
            cboChucVuKH.DisplayMember = "chucvuB";
            cboChucVuKH.ValueMember = "chucvuB";
            cboDiaChiKH.DataSource = dt;
            cboDiaChiKH.DisplayMember = "diachiB";
            cboDiaChiKH.ValueMember = "diachiB";
            cboDTKH.DataSource = dt;
            cboDTKH.DisplayMember = "dienthoaiB";
            cboDTKH.ValueMember = "dienthoaiB";
        }

        private void groupPanel3_Click(object sender, EventArgs e)
        {

        }
    }
}
